#ifndef CUFFTDX_FFT_24_FP32_FWD_PTX_HPP
#define CUFFTDX_FFT_24_FP32_FWD_PTX_HPP



template<> __forceinline__ __device__ void cufftdx_private_function<10, float, 1>(cufftdx::detail::complex<float> *rmem, unsigned smem){

asm volatile (R"({
.reg .f32 f<498>;
.reg .b64 rd<2>;
add.f32 f97, %69, %90;
add.f32 f98, %48, f97;
add.f32 f99, %71, %92;
add.f32 f100, %49, f99;
mul.f32 f101, f97, 0f3F000000;
sub.f32 f102, %48, f101;
sub.f32 f103, %71, %92;
mul.f32 f104, f103, 0f3F5DB3D7;
add.f32 f105, f104, f102;
sub.f32 f106, f102, f104;
mul.f32 f107, f99, 0f3F000000;
sub.f32 f108, %49, f107;
sub.f32 f109, %69, %90;
mul.f32 f110, f109, 0f3F5DB3D7;
sub.f32 f111, f108, f110;
add.f32 f112, f110, f108;
add.f32 f113, %80, %101;
add.f32 f114, %58, f113;
add.f32 f115, %81, %103;
add.f32 f116, %60, f115;
mul.f32 f117, f113, 0f3F000000;
sub.f32 f118, %58, f117;
sub.f32 f119, %81, %103;
mul.f32 f120, f119, 0f3F5DB3D7;
add.f32 f121, f120, f118;
sub.f32 f122, f118, f120;
mul.f32 f123, f115, 0f3F000000;
sub.f32 f124, %60, f123;
sub.f32 f125, %80, %101;
mul.f32 f126, f125, 0f3F5DB3D7;
sub.f32 f127, f124, f126;
add.f32 f128, f126, f124;
mul.f32 f129, f121, 0f3F000000;
mul.f32 f130, f127, 0fBF5DB3D7;
sub.f32 f131, f129, f130;
mul.f32 f132, f127, 0f3F000000;
fma.rn.f32 f133, f121, 0fBF5DB3D7, f132;
mul.f32 f134, f122, 0fBF000000;
mul.f32 f135, f128, 0fBF5DB3D7;
sub.f32 f136, f134, f135;
mul.f32 f137, f128, 0fBF000000;
fma.rn.f32 f138, f122, 0fBF5DB3D7, f137;
add.f32 f139, f98, f114;
add.f32 f140, f100, f116;
sub.f32 f141, f98, f114;
sub.f32 f142, f100, f116;
add.f32 f143, f105, f131;
add.f32 f144, f111, f133;
sub.f32 f145, f105, f131;
sub.f32 f146, f111, f133;
add.f32 f147, f106, f136;
add.f32 f148, f112, f138;
sub.f32 f149, f106, f136;
sub.f32 f150, f112, f138;
add.f32 f151, %74, %96;
add.f32 f152, %53, f151;
add.f32 f153, %76, %97;
add.f32 f154, %55, f153;
mul.f32 f155, f151, 0f3F000000;
sub.f32 f156, %53, f155;
sub.f32 f157, %76, %97;
mul.f32 f158, f157, 0f3F5DB3D7;
add.f32 f159, f158, f156;
sub.f32 f160, f156, f158;
mul.f32 f161, f153, 0f3F000000;
sub.f32 f162, %55, f161;
sub.f32 f163, %74, %96;
mul.f32 f164, f163, 0f3F5DB3D7;
sub.f32 f165, f162, f164;
add.f32 f166, f164, f162;
add.f32 f167, %85, %106;
add.f32 f168, %64, f167;
add.f32 f169, %87, %108;
add.f32 f170, %65, f169;
mul.f32 f171, f167, 0f3F000000;
sub.f32 f172, %64, f171;
sub.f32 f173, %87, %108;
mul.f32 f174, f173, 0f3F5DB3D7;
add.f32 f175, f174, f172;
sub.f32 f176, f172, f174;
mul.f32 f177, f169, 0f3F000000;
sub.f32 f178, %65, f177;
sub.f32 f179, %85, %106;
mul.f32 f180, f179, 0f3F5DB3D7;
sub.f32 f181, f178, f180;
add.f32 f182, f180, f178;
mul.f32 f183, f175, 0f3F000000;
mul.f32 f184, f181, 0fBF5DB3D7;
sub.f32 f185, f183, f184;
mul.f32 f186, f181, 0f3F000000;
fma.rn.f32 f187, f175, 0fBF5DB3D7, f186;
mul.f32 f188, f176, 0fBF000000;
mul.f32 f189, f182, 0fBF5DB3D7;
sub.f32 f190, f188, f189;
mul.f32 f191, f182, 0fBF000000;
fma.rn.f32 f192, f176, 0fBF5DB3D7, f191;
add.f32 f193, f152, f168;
add.f32 f194, f154, f170;
sub.f32 f195, f152, f168;
sub.f32 f196, f154, f170;
add.f32 f197, f159, f185;
add.f32 f198, f165, f187;
sub.f32 f199, f159, f185;
sub.f32 f200, f165, f187;
add.f32 f201, f160, f190;
add.f32 f202, f166, f192;
sub.f32 f203, f160, f190;
sub.f32 f204, f166, f192;
mul.f32 f205, f197, 0f3F5DB3D7;
mul.f32 f206, f198, 0fBF000000;
sub.f32 f207, f205, f206;
mul.f32 f208, f198, 0f3F5DB3D7;
fma.rn.f32 f209, f197, 0fBF000000, f208;
mul.f32 f210, f201, 0f3F000000;
mul.f32 f211, f202, 0fBF5DB3D7;
sub.f32 f212, f210, f211;
mul.f32 f213, f202, 0f3F000000;
fma.rn.f32 f214, f201, 0fBF5DB3D7, f213;
mul.f32 f215, f199, 0fBF000000;
mul.f32 f216, f200, 0fBF5DB3D7;
sub.f32 f217, f215, f216;
mul.f32 f218, f200, 0fBF000000;
fma.rn.f32 f219, f199, 0fBF5DB3D7, f218;
mul.f32 f220, f203, 0fBF5DB3D7;
mul.f32 f221, f204, 0fBF000000;
sub.f32 f222, f220, f221;
mul.f32 f223, f204, 0fBF5DB3D7;
fma.rn.f32 f224, f203, 0fBF000000, f223;
add.f32 f225, f139, f193;
add.f32 f226, f140, f194;
sub.f32 f227, f139, f193;
sub.f32 f228, f140, f194;
add.f32 f229, f143, f207;
add.f32 f230, f144, f209;
sub.f32 f231, f143, f207;
sub.f32 f232, f144, f209;
add.f32 f233, f147, f212;
add.f32 f234, f148, f214;
sub.f32 f235, f147, f212;
sub.f32 f236, f148, f214;
add.f32 f237, f141, f196;
sub.f32 f238, f142, f195;
sub.f32 f239, f141, f196;
add.f32 f240, f142, f195;
add.f32 f241, f145, f217;
add.f32 f242, f146, f219;
sub.f32 f243, f145, f217;
sub.f32 f244, f146, f219;
add.f32 f245, f149, f222;
add.f32 f246, f150, f224;
sub.f32 f247, f149, f222;
sub.f32 f248, f150, f224;
add.f32 f249, %72, %93;
add.f32 f250, %50, f249;
add.f32 f251, %73, %95;
add.f32 f252, %52, f251;
mul.f32 f253, f249, 0f3F000000;
sub.f32 f254, %50, f253;
sub.f32 f255, %73, %95;
mul.f32 f256, f255, 0f3F5DB3D7;
add.f32 f257, f256, f254;
sub.f32 f258, f254, f256;
mul.f32 f259, f251, 0f3F000000;
sub.f32 f260, %52, f259;
sub.f32 f261, %72, %93;
mul.f32 f262, f261, 0f3F5DB3D7;
sub.f32 f263, f260, f262;
add.f32 f264, f262, f260;
add.f32 f265, %82, %104;
add.f32 f266, %61, f265;
add.f32 f267, %84, %105;
add.f32 f268, %63, f267;
mul.f32 f269, f265, 0f3F000000;
sub.f32 f270, %61, f269;
sub.f32 f271, %84, %105;
mul.f32 f272, f271, 0f3F5DB3D7;
add.f32 f273, f272, f270;
sub.f32 f274, f270, f272;
mul.f32 f275, f267, 0f3F000000;
sub.f32 f276, %63, f275;
sub.f32 f277, %82, %104;
mul.f32 f278, f277, 0f3F5DB3D7;
sub.f32 f279, f276, f278;
add.f32 f280, f278, f276;
mul.f32 f281, f273, 0f3F000000;
mul.f32 f282, f279, 0fBF5DB3D7;
sub.f32 f283, f281, f282;
mul.f32 f284, f279, 0f3F000000;
fma.rn.f32 f285, f273, 0fBF5DB3D7, f284;
mul.f32 f286, f274, 0fBF000000;
mul.f32 f287, f280, 0fBF5DB3D7;
sub.f32 f288, f286, f287;
mul.f32 f289, f280, 0fBF000000;
fma.rn.f32 f290, f274, 0fBF5DB3D7, f289;
add.f32 f291, f250, f266;
add.f32 f292, f252, f268;
sub.f32 f293, f250, f266;
sub.f32 f294, f252, f268;
add.f32 f295, f257, f283;
add.f32 f296, f263, f285;
sub.f32 f297, f257, f283;
sub.f32 f298, f263, f285;
add.f32 f299, f258, f288;
add.f32 f300, f264, f290;
sub.f32 f301, f258, f288;
sub.f32 f302, f264, f290;
add.f32 f303, %77, %98;
add.f32 f304, %56, f303;
add.f32 f305, %79, %100;
add.f32 f306, %57, f305;
mul.f32 f307, f303, 0f3F000000;
sub.f32 f308, %56, f307;
sub.f32 f309, %79, %100;
mul.f32 f310, f309, 0f3F5DB3D7;
add.f32 f311, f310, f308;
sub.f32 f312, f308, f310;
mul.f32 f313, f305, 0f3F000000;
sub.f32 f314, %57, f313;
sub.f32 f315, %77, %98;
mul.f32 f316, f315, 0f3F5DB3D7;
sub.f32 f317, f314, f316;
add.f32 f318, f316, f314;
add.f32 f319, %88, %109;
add.f32 f320, %66, f319;
add.f32 f321, %89, %110;
add.f32 f322, %68, f321;
mul.f32 f323, f319, 0f3F000000;
sub.f32 f324, %66, f323;
sub.f32 f325, %89, %110;
mul.f32 f326, f325, 0f3F5DB3D7;
add.f32 f327, f326, f324;
sub.f32 f328, f324, f326;
mul.f32 f329, f321, 0f3F000000;
sub.f32 f330, %68, f329;
sub.f32 f331, %88, %109;
mul.f32 f332, f331, 0f3F5DB3D7;
sub.f32 f333, f330, f332;
add.f32 f334, f332, f330;
mul.f32 f335, f327, 0f3F000000;
mul.f32 f336, f333, 0fBF5DB3D7;
sub.f32 f337, f335, f336;
mul.f32 f338, f333, 0f3F000000;
fma.rn.f32 f339, f327, 0fBF5DB3D7, f338;
mul.f32 f340, f328, 0fBF000000;
mul.f32 f341, f334, 0fBF5DB3D7;
sub.f32 f342, f340, f341;
mul.f32 f343, f334, 0fBF000000;
fma.rn.f32 f344, f328, 0fBF5DB3D7, f343;
add.f32 f345, f304, f320;
add.f32 f346, f306, f322;
sub.f32 f347, f304, f320;
sub.f32 f348, f306, f322;
add.f32 f349, f311, f337;
add.f32 f350, f317, f339;
sub.f32 f351, f311, f337;
sub.f32 f352, f317, f339;
add.f32 f353, f312, f342;
add.f32 f354, f318, f344;
sub.f32 f355, f312, f342;
sub.f32 f356, f318, f344;
mul.f32 f357, f349, 0f3F5DB3D7;
mul.f32 f358, f350, 0fBF000000;
sub.f32 f359, f357, f358;
mul.f32 f360, f350, 0f3F5DB3D7;
fma.rn.f32 f361, f349, 0fBF000000, f360;
mul.f32 f362, f353, 0f3F000000;
mul.f32 f363, f354, 0fBF5DB3D7;
sub.f32 f364, f362, f363;
mul.f32 f365, f354, 0f3F000000;
fma.rn.f32 f366, f353, 0fBF5DB3D7, f365;
mul.f32 f367, f351, 0fBF000000;
mul.f32 f368, f352, 0fBF5DB3D7;
sub.f32 f369, f367, f368;
mul.f32 f370, f352, 0fBF000000;
fma.rn.f32 f371, f351, 0fBF5DB3D7, f370;
mul.f32 f372, f355, 0fBF5DB3D7;
mul.f32 f373, f356, 0fBF000000;
sub.f32 f374, f372, f373;
mul.f32 f375, f356, 0fBF5DB3D7;
fma.rn.f32 f376, f355, 0fBF000000, f375;
add.f32 f377, f291, f345;
add.f32 f378, f292, f346;
sub.f32 f379, f291, f345;
sub.f32 f380, f292, f346;
add.f32 f381, f295, f359;
add.f32 f382, f296, f361;
sub.f32 f383, f295, f359;
sub.f32 f384, f296, f361;
add.f32 f385, f299, f364;
add.f32 f386, f300, f366;
sub.f32 f387, f299, f364;
sub.f32 f388, f300, f366;
add.f32 f389, f293, f348;
sub.f32 f390, f294, f347;
sub.f32 f391, f293, f348;
add.f32 f392, f294, f347;
add.f32 f393, f297, f369;
add.f32 f394, f298, f371;
sub.f32 f395, f297, f369;
sub.f32 f396, f298, f371;
add.f32 f397, f301, f374;
add.f32 f398, f302, f376;
sub.f32 f399, f301, f374;
sub.f32 f400, f302, f376;
mul.f32 f401, f381, 0f3F7746EA;
mul.f32 f402, f382, 0fBE8483EE;
sub.f32 f403, f401, f402;
mul.f32 f404, f382, 0f3F7746EA;
fma.rn.f32 f405, f381, 0fBE8483EE, f404;
mul.f32 f406, f385, 0f3F5DB3D7;
mul.f32 f407, f386, 0fBF000000;
sub.f32 f408, f406, f407;
mul.f32 f409, f386, 0f3F5DB3D7;
fma.rn.f32 f410, f385, 0fBF000000, f409;
mul.f32 f411, f389, 0f3F3504F3;
mul.f32 f412, f390, 0fBF3504F3;
sub.f32 f413, f411, f412;
mul.f32 f414, f390, 0f3F3504F3;
fma.rn.f32 f415, f389, 0fBF3504F3, f414;
mul.f32 f416, f393, 0f3F000000;
mul.f32 f417, f394, 0fBF5DB3D7;
sub.f32 f418, f416, f417;
mul.f32 f419, f394, 0f3F000000;
fma.rn.f32 f420, f393, 0fBF5DB3D7, f419;
mul.f32 f421, f397, 0f3E8483EE;
mul.f32 f422, f398, 0fBF7746EA;
sub.f32 f423, f421, f422;
mul.f32 f424, f398, 0f3E8483EE;
fma.rn.f32 f425, f397, 0fBF7746EA, f424;
mul.f32 f426, f383, 0fBE8483EE;
mul.f32 f427, f384, 0fBF7746EA;
sub.f32 f428, f426, f427;
mul.f32 f429, f384, 0fBE8483EE;
fma.rn.f32 f430, f383, 0fBF7746EA, f429;
mul.f32 f431, f387, 0fBF000000;
mul.f32 f432, f388, 0fBF5DB3D7;
sub.f32 f433, f431, f432;
mul.f32 f434, f388, 0fBF000000;
fma.rn.f32 f435, f387, 0fBF5DB3D7, f434;
mul.f32 f436, f391, 0fBF3504F3;
mul.f32 f437, f392, 0fBF3504F3;
sub.f32 f438, f436, f437;
add.f32 f439, f436, f437;
mul.f32 f440, f395, 0fBF5DB3D7;
mul.f32 f441, f396, 0fBF000000;
sub.f32 f442, f440, f441;
mul.f32 f443, f396, 0fBF5DB3D7;
fma.rn.f32 f444, f395, 0fBF000000, f443;
mul.f32 f445, f399, 0fBF7746EA;
mul.f32 f446, f400, 0fBE8483EE;
sub.f32 f447, f445, f446;
mul.f32 f448, f400, 0fBF7746EA;
fma.rn.f32 f449, f399, 0fBE8483EE, f448;
add.f32 %1, f226, f378;
add.f32 %0, f225, f377;
add.f32 %3, f230, f405;
add.f32 %2, f229, f403;
add.f32 %5, f234, f410;
add.f32 %4, f233, f408;
add.f32 %7, f238, f415;
add.f32 %6, f237, f413;
add.f32 %9, f242, f420;
add.f32 %8, f241, f418;
add.f32 %11, f246, f425;
add.f32 %10, f245, f423;
sub.f32 %13, f228, f379;
add.f32 %12, f227, f380;
add.f32 %15, f232, f430;
add.f32 %14, f231, f428;
add.f32 %17, f236, f435;
add.f32 %16, f235, f433;
add.f32 %19, f240, f439;
add.f32 %18, f239, f438;
add.f32 %21, f244, f444;
add.f32 %20, f243, f442;
add.f32 %23, f248, f449;
add.f32 %22, f247, f447;
sub.f32 %25, f226, f378;
sub.f32 %24, f225, f377;
sub.f32 %27, f230, f405;
sub.f32 %26, f229, f403;
sub.f32 %29, f234, f410;
sub.f32 %28, f233, f408;
sub.f32 %31, f238, f415;
sub.f32 %30, f237, f413;
sub.f32 %33, f242, f420;
sub.f32 %32, f241, f418;
sub.f32 %35, f246, f425;
sub.f32 %34, f245, f423;
add.f32 %37, f228, f379;
sub.f32 %36, f227, f380;
sub.f32 %39, f232, f430;
sub.f32 %38, f231, f428;
sub.f32 %41, f236, f435;
sub.f32 %40, f235, f433;
sub.f32 %43, f240, f439;
sub.f32 %42, f239, f438;
sub.f32 %45, f244, f444;
sub.f32 %44, f243, f442;
sub.f32 %47, f248, f449;
sub.f32 %46, f247, f447;
})"
     : "=f"(rmem[0].x), "=f"(rmem[0].y), "=f"(rmem[1].x), "=f"(rmem[1].y), "=f"(rmem[2].x), "=f"(rmem[2].y), "=f"(rmem[3].x), "=f"(rmem[3].y), "=f"(rmem[4].x), "=f"(rmem[4].y), "=f"(rmem[5].x), "=f"(rmem[5].y), "=f"(rmem[6].x), "=f"(rmem[6].y), "=f"(rmem[7].x), "=f"(rmem[7].y), "=f"(rmem[8].x), "=f"(rmem[8].y), "=f"(rmem[9].x), "=f"(rmem[9].y), "=f"(rmem[10].x), "=f"(rmem[10].y), "=f"(rmem[11].x), "=f"(rmem[11].y), "=f"(rmem[12].x), "=f"(rmem[12].y), "=f"(rmem[13].x), "=f"(rmem[13].y), "=f"(rmem[14].x), "=f"(rmem[14].y), "=f"(rmem[15].x), "=f"(rmem[15].y), "=f"(rmem[16].x), "=f"(rmem[16].y), "=f"(rmem[17].x), "=f"(rmem[17].y), "=f"(rmem[18].x), "=f"(rmem[18].y), "=f"(rmem[19].x), "=f"(rmem[19].y), "=f"(rmem[20].x), "=f"(rmem[20].y), "=f"(rmem[21].x), "=f"(rmem[21].y), "=f"(rmem[22].x), "=f"(rmem[22].y), "=f"(rmem[23].x), "=f"(rmem[23].y): "f"(rmem[0].x), "f"(rmem[0].y), "f"(rmem[1].x), "f"(rmem[1].y), "f"(rmem[1].y), "f"(rmem[2].x), "f"(rmem[2].y), "f"(rmem[2].y), "f"(rmem[3].x), "f"(rmem[3].y), "f"(rmem[4].x), "f"(rmem[4].y), "f"(rmem[4].y), "f"(rmem[5].x), "f"(rmem[5].y), "f"(rmem[5].y), "f"(rmem[6].x), "f"(rmem[6].y), "f"(rmem[7].x), "f"(rmem[7].y), "f"(rmem[7].y), "f"(rmem[8].x), "f"(rmem[8].y), "f"(rmem[8].y), "f"(rmem[9].x), "f"(rmem[9].y), "f"(rmem[10].x), "f"(rmem[10].y), "f"(rmem[10].y), "f"(rmem[11].x), "f"(rmem[11].y), "f"(rmem[11].y), "f"(rmem[12].x), "f"(rmem[12].y), "f"(rmem[13].x), "f"(rmem[13].y), "f"(rmem[13].y), "f"(rmem[14].x), "f"(rmem[14].y), "f"(rmem[14].y), "f"(rmem[15].x), "f"(rmem[15].y), "f"(rmem[16].x), "f"(rmem[16].y), "f"(rmem[16].y), "f"(rmem[17].x), "f"(rmem[17].y), "f"(rmem[17].y), "f"(rmem[18].x), "f"(rmem[18].y), "f"(rmem[19].x), "f"(rmem[19].y), "f"(rmem[19].y), "f"(rmem[20].x), "f"(rmem[20].y), "f"(rmem[20].y), "f"(rmem[21].x), "f"(rmem[21].y), "f"(rmem[22].x), "f"(rmem[22].y), "f"(rmem[22].y), "f"(rmem[23].x), "f"(rmem[23].y));
};


#endif
